gui/macOS: Improve overall memory management in XPCUtils::getDomainManagers
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 26 Mar 2025 12:44:03 +0000 (13:44 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 27 Mar 2025 14:16:05 +0000 (14:16 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/macOS/fileproviderxpc_mac_utils.mm

index 4549f4853af295a7e5a0775972004fcc7e2c0a7f..344031144f060296db7c204d32fd9a0c3398710b 100644 (file)
@@ -30,7 +30,7 @@ Q_LOGGING_CATEGORY(lcFileProviderXPCUtils, "nextcloud.gui.macos.fileprovider.xpc
 NSArray<NSFileProviderManager *> *getDomainManagers()
 {
     dispatch_group_t group = dispatch_group_create();
-    __block NSMutableArray<NSFileProviderManager *> *managers = NSMutableArray.array;
+    __block NSMutableArray<NSFileProviderManager *> *const managers = NSMutableArray.array;
 
     dispatch_group_enter(group);
 
@@ -45,8 +45,11 @@ NSArray<NSFileProviderManager *> *getDomainManagers()
         for (NSFileProviderDomain *const domain in domains) {
             qCInfo(lcFileProviderXPCUtils) << "Got domain" << domain.identifier;
             NSFileProviderManager *const manager = [NSFileProviderManager managerForDomain:domain];
-            [manager retain];
-            [managers addObject:manager];
+            if (manager) {
+                [managers addObject:manager];
+            } else {
+                qCWarning(lcFileProviderXPCUtils) << "Could not get manager for domain" << domain.identifier;
+            }
         }
 
         dispatch_group_leave(group);